package com.emm.yixun.marketing.service;

import javax.jws.WebService;

import com.emm.yixun.common.model.BusinessAbnorma;
import com.emm.yixun.common.model.User;
import com.emm.yixun.common.model.dto.AbnormaBusinessView;
import com.emm.yixun.common.model.dto.BusinessAbnormaDto;
import com.emm.yixun.common.page.Page;
import com.emm.yixun.common.response.Response;
import com.emm.yixun.common.response.ResponseList;

@WebService
public interface BusinessAbnormaServiceFacade {
	/**
	 * 新增
	 */
	Response<BusinessAbnormaDto> save(BusinessAbnormaDto dto);

	/**
	 * 修改,当selective=true时修改非空列,当selective=false修改所有列
	 */
	Response<Integer> updateByPrimaryKey(BusinessAbnormaDto dto, Boolean selective);

	/**
	 * 逻辑删除
	 */
	Response<Integer> deleteByPrimaryKey(Long id);

	/**
	 * 主键查询
	 */
	Response<BusinessAbnorma> findById(Long id);

	/**
	 * 根据dto查询记录
	 */
	ResponseList<BusinessAbnorma> findByDto(BusinessAbnormaDto dto);

	/**
	 * 根据dto以及分页参数查询记录
	 */
	Page<BusinessAbnorma> findPageByDto(BusinessAbnormaDto dto, Integer begin, Integer row);

	/**
	 * 方法描述 : 换房流程，页面数据加载 创建者：ThinkPad 项目名称： emm-marketing-api 类名： BusinessAbnormaServiceFacade.java 版本： v1.0 创建时间：
	 * 2016年7月11日 下午4:00:26
	 * 
	 * @param id
	 * @return AbnormaBusinessView
	 */
	public AbnormaBusinessView findAbnormaBusinessById(Long id);

	/**
	 * 方法描述 : 保存换房记录 创建者：ThinkPad 项目名称： emm-marketing-api 类名： BusinessAbnormaServiceFacade.java 版本： v1.0 创建时间：
	 * 2016年7月12日 上午10:51:06
	 * 
	 * @param dto
	 *            保存对象
	 * @return Response<Boolean>
	 */
	public Response<Long> saveChangeHouseInfo(User user, BusinessAbnormaDto dto) throws Exception;

	/**
	 * 是否存在换房记录 功能描述: <br>
	 * 〈功能详细描述〉
	 * 
	 * @param dto
	 * @return
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	public Response<Boolean> selectByDto(BusinessAbnormaDto dto);

	/**
	 * 方法描述 : 详情 创建者：ThinkPad 项目名称： emm-marketing-api 类名： BusinessAbnormaServiceFacade.java 版本： v1.0 创建时间： 2016年7月12日
	 * 下午4:18:40
	 * 
	 * @param id
	 * @return AbnormaBusinessView
	 */
	public AbnormaBusinessView findAbormaBusinessDetailById(Long id);

	/**
	 * 签约换房
	 */
	Response<BusinessAbnormaDto> signedChangeRoom(BusinessAbnormaDto dto, User user) throws Exception;
}
